package com.ruoyi.celoan.service.impl;

import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.celoan.entity.DalianDataReportKeyEntity;
import com.ruoyi.celoan.entity.ExTradeEffectInstitutionsstatisticsSummaryEntity;
import com.ruoyi.celoan.handanUtils.HanDanHttpUtils;
import com.ruoyi.celoan.handanUtils.response.CountryPlatformResponse;
import com.ruoyi.celoan.mapper.ExTradeEffectInstitutionsstatisticsSummaryMapper;
import com.ruoyi.celoan.service.ExTradeEffectInstitutionsstatisticsSummaryService;
import com.ruoyi.celoan.service.IEcDalianDataReportLogsService;
import com.ruoyi.celoan.util.DataReportUtil;
import com.ruoyi.celoan.util.ListUtils;
import com.xmsme.base.sdk.BaseApiClient;
import com.xmsme.base.sdk.response.StatisticsPostResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class ExTradeEffectInstitutionsstatisticsSummaryServiceImpl
extends ServiceImpl<ExTradeEffectInstitutionsstatisticsSummaryMapper, ExTradeEffectInstitutionsstatisticsSummaryEntity>
implements ExTradeEffectInstitutionsstatisticsSummaryService
{
private static final Logger log = LoggerFactory.getLogger( ExTradeEffectInstitutionsstatisticsSummaryServiceImpl.class);
@Autowired
private IEcDalianDataReportLogsService dalianDataReportLogsService;
private static String url = "/api/upload/creditLending";
public void getDataReport(String interfaceName, BaseApiClient client, DalianDataReportKeyEntity entity, String areaCode) {
String startDate = LocalDateTime.now().plusDays(-2L).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
QueryWrapper<ExTradeEffectInstitutionsstatisticsSummaryEntity> queryWrapper = new QueryWrapper();
queryWrapper.eq("area_code", areaCode);
queryWrapper.eq("isflag", Integer.valueOf(0));
log.info("开始时间：" + startDate);
List<ExTradeEffectInstitutionsstatisticsSummaryEntity> list = ((ExTradeEffectInstitutionsstatisticsSummaryMapper)this.baseMapper).selectList((Wrapper)queryWrapper);
if (CollUtil.isNotEmpty(list)) {
List<List<ExTradeEffectInstitutionsstatisticsSummaryEntity>> retList = ListUtils.split(list, 100);
this.dalianDataReportLogsService.addLogs(interfaceName + "接口上报数据开始", list.size() + "条");
String date = LocalDate.now().toString();
List<Long> updateList = new ArrayList<>();
for (int i = 0; i < retList.size(); i++) {
try {
List<ExTradeEffectInstitutionsstatisticsSummaryEntity> reportList = retList.get(i);
List<Long> addlist = (List<Long>)reportList.stream().map(ret -> ret.getId()).collect(Collectors.toList());
this.dalianDataReportLogsService.addLogs(interfaceName + "明细日期:" + date + "上报id为：", JSONObject.toJSONString(addlist));
StatisticsPostResponse response = DataReportUtil.institutionsStatistics(reportList, client);
this.dalianDataReportLogsService.addLogs(interfaceName + "明细返回结果:", JSONObject.toJSONString(response));
if (response.isSuccess()) {
updateList.addAll(addlist);
}
} catch (Exception e) {
e.printStackTrace();
log.info("数据上报异常:" + e.getMessage());
this.dalianDataReportLogsService.addLogs(interfaceName + "上报数据上报错误信息", JSONObject.toJSONString(e.getMessage()));
}
}
if (CollUtil.isNotEmpty(updateList)) {
UpdateWrapper<ExTradeEffectInstitutionsstatisticsSummaryEntity> updateWrapper = new UpdateWrapper();
updateWrapper.in("id", updateList);
updateWrapper.set("isflag", Integer.valueOf(1));
update((Wrapper)updateWrapper);
this.dalianDataReportLogsService.addLogs(interfaceName + "上报数据上报成功条数:", updateList.size() + "条");
}
}
}
public void getHanDanDataReport(String interfaceName, DalianDataReportKeyEntity entity, String areaCode, String token, String publicKey) {
String startDate = LocalDateTime.now().plusDays(-2L).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
QueryWrapper<ExTradeEffectInstitutionsstatisticsSummaryEntity> queryWrapper = new QueryWrapper();
queryWrapper.eq("area_code", areaCode);
queryWrapper.eq("isflag", Integer.valueOf(1));
log.info("开始时间：" + startDate);
List<ExTradeEffectInstitutionsstatisticsSummaryEntity> list = ((ExTradeEffectInstitutionsstatisticsSummaryMapper)this.baseMapper).selectList((Wrapper)queryWrapper);
if (CollUtil.isNotEmpty(list)) {
List<List<ExTradeEffectInstitutionsstatisticsSummaryEntity>> retList = ListUtils.split(list, 40);
this.dalianDataReportLogsService.addLogs(interfaceName + "接口上报数据开始", list.size() + "条");
String date = LocalDate.now().toString();
List<Long> updateList = new ArrayList<>();
for (int i = 0; i < retList.size(); i++) {
try {
List<ExTradeEffectInstitutionsstatisticsSummaryEntity> reportList = retList.get(i);
List<Long> addlist = (List<Long>)reportList.stream().map(ret -> ret.getId()).collect(Collectors.toList());
this.dalianDataReportLogsService.addLogs(interfaceName + "明细日期:" + date + "上报id为：", JSONObject.toJSONString(addlist));
CountryPlatformResponse response = HanDanHttpUtils.creditLending(url, JSONObject.toJSONString(reportList), token);
this.dalianDataReportLogsService.addLogs(interfaceName + "明细返回结果:", JSONObject.toJSONString(response));
if (response.isApiStatus()) {
updateList.addAll(addlist);
}
} catch (Exception e) {
e.printStackTrace();
log.info("数据上报异常:" + e.getMessage());
this.dalianDataReportLogsService.addLogs(interfaceName + "上报数据上报错误信息", JSONObject.toJSONString(e.getMessage()));
}
}
if (CollUtil.isNotEmpty(updateList)) {
UpdateWrapper<ExTradeEffectInstitutionsstatisticsSummaryEntity> updateWrapper = new UpdateWrapper();
updateWrapper.in("id", updateList);
updateWrapper.set("isflag", Integer.valueOf(1));
update((Wrapper)updateWrapper);
this.dalianDataReportLogsService.addLogs(interfaceName + "上报数据上报成功条数:", updateList.size() + "条");
}
}
}
}


/* Location:              D:\tuodayun\workspace\work\celoan-third-data-report-service-2.0.0-SNAPSHOT.jar!\BOOT-INF\classes\com\celoan\service\impl\ExTradeEffectInstitutionsstatisticsSummaryServiceImpl.class
 * Java compiler version: 8 (52.0)
 * JD-Core Version:       1.1.3
 */
